CREATE PROCEDURE VENTAS_INSERTAR_CLIENTE_R
@NOMBRE VARCHAR(100),
@APPATERNO VARCHAR(100),
@APMATERNO VARCHAR(100),
@TIPODOCIDENTIDAD VARCHAR(50),
@DOCIDENTIDAD VARCHAR(20),
--@FECNACIMIENTO DATE,
--@SEXO VARCHAR(20),
@DIRECCION VARCHAR(200),
--@TELCASA VARCHAR(20),
--@TELCELULAR VARCHAR(20),
--@TELEMERGENCIA VARCHAR(20),
--@CONTACTOEMERGENCIA VARCHAR(200),
--@AREA VARCHAR(100),
--@CARGO VARCHAR(100),
@ESTADOTRAN INTEGER OUTPUT
AS

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRANSACTION

DECLARE @IDEM INTEGER
DECLARE @IDTD INTEGER
--DECLARE @IDAR INTEGER
--DECLARE @IDCA INTEGER
--DECLARE @IDHO INTEGER
DECLARE @CONT INTEGER

BEGIN TRY
	--vemos primero si ya existe el doc de identidad
	SET @CONT = (SELECT COUNT(*) FROM CLIENTE WHERE DOCID = @DOCIDENTIDAD)
	
	IF @CONT > 0 
	BEGIN
		SET @ESTADOTRAN = 2
		ROLLBACK TRANSACTION
	END
	ELSE
	BEGIN

		--buscamos el maximo id del empleado
		--SET @IDEM = (SELECT MAX(IDEMPLEADO) FROM EMPLEADO)
		--SET @IDEM = @IDEM + 1
		--buscamos el id del tipo de documento
		SET @IDTD = (SELECT IDTIPODOC FROM TIPODOCUMENTO
					 WHERE DESCRIPCION = @TIPODOCIDENTIDAD)
		--buscamos el id del area
		--SET @IDAR = (SELECT IDAREA FROM AREA
		--			WHERE DESCRIPCION = @AREA)
		--buscamos el id del cargo
		--SET @IDCA = (SELECT IDCARGO FROM CARGO
		--		WHERE DESCRIPCION = @CARGO AND IDAREA = @IDAR)
		
		--buscamos el maximo id del horario
		--SET @CONT = (SELECT COUNT(*) FROM HORARIO)
/*		
		IF @CONT = 0
		BEGIN
			SET @IDHO = 1	
		END
		ELSE
		BEGIN
			SET @IDHO = (SELECT MAX(IDHORARIO) FROM HORARIO)
			SET @IDHO = @IDHO + 1
		END
		--creamos un nuevo horario predeterminado para el empleado
		INSERT INTO HORARIO (idHorario) VALUES (@IDHO)
		INSERT INTO HORARIOXDIA (IDHORARIO, IDDIA, HORAENTRADA, HORASALIDA) VALUES (@IDHO, 1,
		CAST('08:00' AS time(7)), CAST('16:00' AS time(7)))
		INSERT INTO HORARIOXDIA (IDHORARIO, IDDIA, HORAENTRADA, HORASALIDA) VALUES (@IDHO, 2,
		CAST('08:00' AS time(7)), CAST('16:00' AS time(7)))
		INSERT INTO HORARIOXDIA (IDHORARIO, IDDIA, HORAENTRADA, HORASALIDA) VALUES (@IDHO, 3,
		CAST('08:00' AS time(7)), CAST('16:00' AS time(7)))
		INSERT INTO HORARIOXDIA (IDHORARIO, IDDIA, HORAENTRADA, HORASALIDA) VALUES (@IDHO, 4,
		CAST('08:00' AS time(7)), CAST('16:00' AS time(7)))
		INSERT INTO HORARIOXDIA (IDHORARIO, IDDIA, HORAENTRADA, HORASALIDA) VALUES (@IDHO, 5,
		CAST('08:00' AS time(7)), CAST('16:00' AS time(7)))
		SET @IDHO = (SELECT MAX(IDHORARIO) FROM HORARIO)
		--generamos el idusuario y el password
*/
/*
		--insertamos el empleado
		INSERT INTO EMPLEADO (NOMBRE, APPATERNO, APMATERNO, IDTIPODOC, DOCIDENTIDAD, FECNACIMIENTO,
		SEXO, DIRECCION, TELCASA, TELCELULAR, TELEMERGENCIA, CONTACTOEMERGENCIA, IDAREA, IDCARGO,
			IDUSUARIO, IDHORARIO, IDESTADO) VALUES (@NOMBRE, @APPATERNO, @APMATERNO, @IDTD, @DOCIDENTIDAD,
		@FECNACIMIENTO, @SEXO, @DIRECCION, @TELCASA, @TELCELULAR, @TELEMERGENCIA, @CONTACTOEMERGENCIA, @IDAR,
		@IDCA, NULL, @IDHO, 1)
*/
		--insertamos el empleado
		INSERT INTO EMPLEADO (NOMBRE, APPATERNO, APMATERNO, IDTIPODOC, DOCIDENTIDAD,DIRECCION) 
		VALUES (@NOMBRE, @APPATERNO, @APMATERNO, @IDTD, @DOCIDENTIDAD, @DIRECCION)
		
		--si se pudo hacer, se coloca 1
		SET @ESTADOTRAN = 1
		COMMIT TRANSACTION

	END
END TRY
BEGIN CATCH
	SET @ESTADOTRAN = 0
	ROLLBACK TRANSACTION
END CATCH